﻿#ifndef BASEMODULE_QBASELOG_H
#define BASEMODULE_QBASELOG_H

#include <QThread>

class QMutex;
class QFile;
class QString;


class QBaseLog : QThread
{
public:

    /// @brief 初始化日志模块
    /// @param path 日志文件路径
    /// @return true成功,false失败
    static bool open_sys_message(QString path);

    /// @brief 关闭日志模块
    static void close_sys_message();

    /// @brief 获取日志
    /// @param type 消息类型
    /// @param context 堆栈内容
    /// @param msg 日志内容
    static void SysMessageOutput(QtMsgType type, const QMessageLogContext& context, const QString& msg);

    /// @brief 重写run函数
    void run() override;

private:

    /// @brief 是否正在运行
    bool isRunning = false;

    static QMutex mutex;    //读写锁
    static QFile fileLog;    //日志文件
    static QString logFilePath;        //日志文件能建路径
    static QStringList listLogMsg;    //日志信息缓存
    static QStringList mapMsgType;    //日志信息类型
};

#endif // QBASELOG_H
